#pragma once

class GAME_API SubWindow {
public:
	SubWindow();
	~SubWindow();

	virtual VOID RegisterNewClass();
	virtual VOID Initialize() = 0;

protected:
	static LRESULT CALLBACK HandleMsgSetup(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
	static LRESULT  HandleMsgThunk(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
	virtual LRESULT ConmonMessapeHandler(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);

	virtual LRESULT HandleMsg(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) = 0;

protected:
	HINSTANCE	_hInstance;
	WCHAR		_WindowName[MAX_PATH];
	WCHAR		_ClassName[MAX_PATH];
	HICON		_hIcon;
};

